/**
 * @(#)CartSummaryWidget.java 2011
 *
 * Copyright 2011 classic-commerce
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 * This class represents the cart summary widget that displays, at a glance, the
 * basic details of the content of the current cart. It allows the user to see
 * the quantity of items current in the cart and the sub total (without
 * applying the applicable taxes) amount cost of the items.
 *
 * @author: <a href="mailto:richard@ioniq.ca">Richard Mutezintare</a>
 *
 */

package ca.ioniq.client.widget.header;

import ca.ioniq.client.ClassicMessages;
import ca.ioniq.client.widget.ListItemWidget;
import ca.ioniq.client.widget.UnorderedListWidget;

import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.FlowPanel;

public class CartSummaryWidget extends FlowPanel {
    private static final String ID = "top_round";
    private static final String CIRCLE = "circle";
    private static final String CART = "cart";

    private int itemCount;
    private double subTotal;

    private Anchor viewCartLink;

    private Anchor itemsLink;
    private Anchor subTotalLink;

    public CartSummaryWidget(final ClassicMessages messages) {
        UnorderedListWidget cartPanel = new UnorderedListWidget();

        itemsLink = new Anchor(messages.itemsLabel(new Integer(itemCount).toString()));
        ListItemWidget itemsLi = new ListItemWidget(itemsLink);
        itemsLi.getElement().setClassName(CIRCLE);
        cartPanel.add(itemsLi);

        subTotalLink = new Anchor(messages.subTotalLabel(new Double(subTotal).toString()));
        ListItemWidget subtotalLi = new ListItemWidget(subTotalLink);
        subtotalLi.getElement().setClassName(CIRCLE);
        cartPanel.add(subtotalLi);

        viewCartLink = new Anchor(messages.viewCartLink());
        viewCartLink.getElement().setClassName(CART);
        cartPanel.add(viewCartLink);

        add(cartPanel);

        getElement().setClassName(ID);
    }

    public int getItemCount() {
        return itemCount;
    }

    public void setItemCount(int itemCount) {
        this.itemCount = itemCount;
    }

    public double getSubTotal() {
        return subTotal;
    }

    public void setSubTotal(double subTotal) {
        this.subTotal = subTotal;
    }

    public Anchor getViewCartLink() {
        return viewCartLink;
    }

    public Anchor getItemsLink() {
        return itemsLink;
    }

    public Anchor getSubTotalLink() {
        return subTotalLink;
    }
}
